In [1]:
import pandas as pd
import numpy as np
import holoviews as hv
hv.extension("bokeh")
In [2]:
df_quspin = pd.read_csv("./compute_nb/quspin6.csv")
df_bdg = pd.read_csv("./compute_nb/bdg_eigenvals_full_minvals6.csv")
df_analytical = pd.read_csv("./experiments/ferromagnetic/Analytic.csv")

df_quspin["Source"] = "quspin"
df_bdg["Source"] = "bdg"
df_analytical["Source"] = "analytical"
In [3]:
#Rename and Drop
df_analytical["E_N"] = df_analytical["energy"]
df_analytical["M^2"] = df_analytical["min_cos"]
df_quspin = df_quspin.drop(columns=["identity"])
df_bdg = df_bdg.drop(columns=["binary", "J_term"])
df_analytical = df_analytical.drop(columns = ["energy", "min_cos", "absmin_cos"])
In [4]:
df_all = pd.concat([df_quspin, df_bdg, df_analytical], sort=False)
df_all = df_all[df_all["h"] == 0]
data = hv.Dataset(df_all)
df_all.head()
Out[4]:
Delta E0_N E_N J M^2 Ms^2 N O^2 h t Source
0 0.000000 -0.666667 -0.666667 0.0 0.167401 2.076600e-01 6.0 3.000000 0.0 1 quspin
1 0.040816 -0.667499 -0.667499 0.0 1.000000 3.537004e-25 6.0 3.007460 0.0 1 quspin
2 0.081633 -0.669982 -0.669982 0.0 1.000000 1.199944e-25 6.0 3.029400 0.0 1 quspin
3 0.122449 -0.674081 -0.674081 0.0 1.000000 1.065708e-27 6.0 3.064568 0.0 1 quspin
4 0.163265 -0.679738 -0.679738 0.0 1.000000 3.738281e-27 6.0 3.111068 0.0 1 quspin

QPD in h=0

In [5]:
df_all = pd.concat([df_quspin, df_bdg, df_analytical], sort=False)
data = hv.Dataset(df_all)

phase_diagram = data.to(hv.HeatMap,['J','Delta'],'M^2',groupby=["Source"])
phase_diagram.opts(hv.opts.HeatMap(tools=['hover'],colorbar=True, clabel="M^2", width=600, height=600,toolbar='above',title='QPD, N=6, h=0',xrotation=90))
#hv.save(phase_diagram, 'energy_checks.html')
phase_diagram
Out[5]:

QPD for h>0

In [6]:
df_all = pd.concat([df_quspin, df_bdg, df_analytical], sort=False)
df_all = df_all[df_all["Source"] != "bdg"]
data = hv.Dataset(df_all)

phase_diagram = data.to(hv.HeatMap,['J','Delta'],'M^2',groupby=["h", "Source"])
phase_diagram.opts(hv.opts.HeatMap(tools=['hover'],colorbar=True, clabel="M^2", width=600, height=600,toolbar='above',title='QPD N=6',xrotation=90))
hv.save(phase_diagram, 'phase_diagram.html')
phase_diagram
Out[6]:

Energy per particle checks in h=0

In [7]:
#Not varying h
phase_diagram = data.to(hv.HeatMap,['J','Delta'],'E_N',groupby=["Source"])
phase_diagram.opts(hv.opts.HeatMap(tools=['hover'],colorbar=True, clabel="E/N", width=600, height=600,toolbar='above',title='Energy per Particle, N=6, h=0',xrotation=90))
#hv.save(phase_diagram, 'energy_checks.html')
phase_diagram
Out[7]:

Energy per particle checks for h>0

In [8]:
df_all = pd.concat([df_quspin, df_bdg, df_analytical], sort=False)
df_all = df_all[df_all["Source"] != "bdg"]
data = hv.Dataset(df_all)

phase_diagram = data.to(hv.HeatMap,['J','Delta'],'E_N',groupby=["h", "Source"])
phase_diagram.opts(hv.opts.HeatMap(tools=['hover'],colorbar=True, clabel="E/N", width=600, height=600,toolbar='above',title='Energy per Particle, N=6, h=0',xrotation=90))
hv.save(phase_diagram, 'phase_diagram.html')
phase_diagram
Out[8]:

Analytic and Numerical Differences in Energy

In [9]:
df_all = pd.concat([df_quspin, df_bdg, df_analytical], sort=False)
df_all = df_all[df_all["Source"] != "bdg"]

df_all["quspin-bdg"] = abs(df_quspin["E_N"] - df_bdg["E_N"])
df_all["bdg-analytical"] = abs(df_bdg["E_N"] - df_analytical["E_N"])
df_all["analytical-quspin"] = abs(df_analytical["E_N"] - df_quspin["E_N"])

data = hv.Dataset(df_all)

phase_diagram = data.to(hv.HeatMap,['J','Delta'],'analytical-quspin',groupby=['h'])
phase_diagram.opts(hv.opts.HeatMap(tools=['hover'],colorbar=True, clabel="E/N", width=600, height=600,toolbar='above',title='Energy Differences Analytical-Quspin',xrotation=90))
#hv.save(phase_diagram, 'energy_differences.html')
phase_diagram
Out[9]:

Comparing with bdg (h = 0) only

In [10]:
phase_diagram = data.to(hv.HeatMap,['J','Delta'],'quspin-bdg',groupby=[])
phase_diagram.opts(hv.opts.HeatMap(tools=['hover'],colorbar=True, clabel="E/N", width=600, height=600,toolbar='above',title='Energy Differences Quspin-Bdg',xrotation=90))
#hv.save(phase_diagram, 'energy_differences.html')
phase_diagram
Out[10]:
In [11]:
phase_diagram = data.to(hv.HeatMap,['J','Delta'],'bdg-analytical',groupby=[])
phase_diagram.opts(hv.opts.HeatMap(tools=['hover'],colorbar=True, clabel="E/N", width=600, height=600,toolbar='above',title='Energy Differences Bdg-Analytical',xrotation=90))
#hv.save(phase_diagram, 'energy_differences.html')
phase_diagram
Out[11]:
In [ ]: